package com.chenxin.interact.service;


import com.alibaba.fastjson2.JSONObject;
import com.chenxin.common.core.domain.DeviceResult;
import com.chenxin.interact.domain.dto.MovePositionDTO;
import com.chenxin.interact.domain.dto.SmtSaveSuccessDTO;
import com.chenxin.interact.domain.dto.SmtTakeSuccessDTO;
import com.chenxin.interact.domain.dto.StopOutputBusinessDTO;
import com.chenxin.wms.domain.ObMasterEntity;

import java.util.Map;

public interface ISmtToWmsService {

    /**
     * 入库成功
     * @param dto
     */
    void saveSuccess(SmtSaveSuccessDTO dto);

    /**
     * 出库成功
     * @param dto
     */
    void takeSuccess(SmtTakeSuccessDTO dto);

    /**
     * 请求入库
     * @param dto
     * @return
     */
    DeviceResult allowInputWarehouse(SmtSaveSuccessDTO dto);

    /**
     * 锁定物料
     * @param dto
     * @return
     */
    DeviceResult lockPosition(SmtSaveSuccessDTO dto);

    /**
     * 解锁物料
     * @param dto
     * @return
     */
    DeviceResult UnLockPosition(SmtSaveSuccessDTO dto);

    /**
     * 下发出库单
     * @param obMasterEntity
     * @return
     */
    void postObMaster(ObMasterEntity obMasterEntity);

    /**
     * 异常出库
     * @param dto
     * @return
     */
    DeviceResult errorOut(SmtSaveSuccessDTO dto);

    /**
     * 删除工单
     * @param dto
     * @return
     */
    DeviceResult stopOutputBusiness(StopOutputBusinessDTO dto);

    /**
     * 获取库位占用率
     * @param towerNo
     * @return
     */
    JSONObject storageUtilizationRate(String towerNo);

    /**
     * 库存查询
     * @param params
     * @return
     */
    JSONObject takeStock(Map<String, String>  params);

    /**
     * 获取库中设备状态
     * @param towerNo
     * @return
     */
    JSONObject requestStatus(String towerNo);

    /**
     * 双升移库接口
     * @param dto
     * @return
     */
    DeviceResult movePosition(MovePositionDTO dto);
}
